//    Copyright (C) Kherty.  All rights reserved.
using System.Diagnostics.Contracts;
using OpenLS.Spreadsheet.Parsing;

namespace OpenLS.Spreadsheet.Expressions
{
#if DEBUG
    [ContractClass(typeof(UnqualifiedExpressionBaseContracts))]
#endif
    abstract class UnqualifiedExpressionBase
    {
        public abstract Expression QualifiedExpression(RangeFactory factory);
#if DEBUG
        [ContractClassFor(typeof(UnqualifiedExpressionBase))]
        abstract class UnqualifiedExpressionBaseContracts : UnqualifiedExpressionBase
        {
            public override Expression QualifiedExpression(RangeFactory factory)
            {
              //\\  Contract.Requires(factory != null);
                return default(Expression);
            }
        }
#endif
    }
}